'\" te
.\" Copyright (c) 1983 Eric P. Allman
.\" Copyright (c) 1988, 1993 The Regents of the University of California.  All rights reserved.
.\" Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright    notice, this list of conditions and the following disclaimer in the    documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software    must display
.\" the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. 4. Neither the name of the University nor the names of its contributors    may be used to endorse or promote products derived from this software    without specific
.\" prior written permission.  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\" Copyright (c) 1998-2006, 2008 Sendmail, Inc. and its suppliers.  All rights reserved.
.\" The following license terms and conditions apply, unless a different license is obtained from Sendmail, Inc., 6425 Christie Ave, Fourth Floor, Emeryville, CA 94608, USA, or by electronic mail at license@sendmail.com.  License Terms:  Use, Modification and Redistribution
.\" (including distribution of any modified or derived work) in source and binary forms is permitted only if each of the following conditions is met:  1. Redistributions qualify as "freeware" or "Open Source Software" under    one of the following terms:     (a) Redistributions are made at no charge
.\" beyond the reasonable cost of        materials and delivery.     (b) Redistributions are accompanied by a copy of the Source Code or by an        irrevocable offer to provide a copy of the Source Code for up to three       years at the cost of materials and delivery.  Such redistributions
.\"    must allow further use, modification, and redistribution of the Source       Code under substantially the same terms as this license.  For the        purposes of redistribution "Source Code" means the complete compilable       and linkable source code of sendmail including all modifications.
.\"  2. Redistributions of source code must retain the copyright notices as they    appear in each source code file, these license terms, and the    disclaimer/limitation of liability set forth as paragraph 6 below.  3. Redistributions in binary form must reproduce the Copyright Notice,    these license
.\" terms, and the disclaimer/limitation of liability set    forth as paragraph 6 below, in the documentation and/or other materials    provided with the distribution.  For the purposes of binary distribution    the "Copyright Notice" refers to the following language:    "Copyright (c) 1998-2004 Sendmail,
.\" Inc.  All rights reserved."  4. Neither the name of Sendmail, Inc. nor the University of California nor    the names of their contributors may be used to endorse or promote    products derived from this software without specific prior written    permission.  The name "sendmail" is a trademark
.\" of Sendmail, Inc.  5. All redistributions must comply with the conditions imposed by the    University of California on certain embedded code, whose copyright    notice and conditions for redistribution are as follows:     (a) Copyright (c) 1988, 1993 The Regents of the University of        California.
.\"  All rights reserved.     (b) Redistribution and use in source and binary forms, with or without        modification, are permitted provided that the following conditions        are met:        (i)   Redistributions of source code must retain the above copyright             notice, this list of
.\" conditions and the following disclaimer.        (ii)  Redistributions in binary form must reproduce the above             copyright notice, this list of conditions and the following             disclaimer in the documentation and/or other materials provided             with the distribution.
.\"       (iii) Neither the name of the University nor the names of its             contributors may be used to endorse or promote products derived             from this software without specific prior written permission. 6. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY    SENDMAIL,
.\" INC. AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN    NO EVENT SHALL SENDMAIL, INC., THE REGENTS OF THE UNIVERSITY OF    CALIFORNIA OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT,    INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF    USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON    ANY THEORY OF LIABILITY, WHETHER
.\" IN CONTRACT, STRICT LIABILITY, OR TORT    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF    THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
.\"  Copyright (c) 2009, Sun Microsystems, Inc.  All Rights Reserved.
.\" Copyright (c) 2019 Peter Tribble.
.TH MAKEMAP 8 "Jan 21, 2019"
.SH NAME
makemap \- create database maps for sendmail
.SH SYNOPSIS
.LP
.nf
\fBmakemap\fR [\fB-N\fR] [\fB-d\fR] [\fB-f\fR] [\fB-o\fR] [\fB-r\fR] [\fB-s\fR] [\fB-v\fR] [\fB-C\fR \fIfile\fR]
     [\fB-c\fR \fIcachesize\fR] [\fB-D\fR \fIcommentchar\fR] [\fB-e\fR] [\fB-l\fR] [\fB-t\fR \fIdelim\fR]
     [\fB-u\fR] \fImaptype\fR \fImapname\fR
.fi

.SH DESCRIPTION
.LP
\fBmakemap\fR creates the database maps used by the keyed map lookups in
\fBsendmail\fR(8). \fBmakemap\fR reads from the standard input and outputs to
the specified \fImapname\fR.
.sp
.LP
In all cases, \fBmakemap\fR reads lines from the standard input consisting of
two words separated by whitespace. The first is the database key, the second is
the value. The value may contain \fB%\fR\fIn\fR strings to indicate parameter
substitution. Literal percents should be doubled (\fB%%\fR). Blank lines and
lines beginning with \fB#\fR are ignored.
.sp
.LP
Depending on how it is compiled, \fBmakemap\fR handles up to three different
database formats, selected using the \fImaptype\fR parameter. See
\fBOPERANDS\fR.
.SH OPTIONS
.LP
The following options are supported:
.sp
.ne 2
.na
\fB-c\fR \fIcachesize\fR
.ad
.RS 18n
Use the specified hash and B-Tree cache size (\fIcachesize\fR).
.RE

.sp
.ne 2
.na
\fB-C\fR \fIfile\fR
.ad
.RS 18n
Use the specified \fBsendmail\fR configuration file (\fIfile\fR) for looking up
the \fBTrustedUser\fR option.
.RE

.sp
.ne 2
.na
\fB-d\fR
.ad
.RS 18n
Allow duplicate keys in the map. This is only allowed on B-Tree format maps. If
two identical keys are read, both are inserted into the map.
.RE

.sp
.ne 2
.na
\fB-D\fR \fIcommentchar\fR
.ad
.RS 18n
Use the specified character to indicate a comment (which is ignored) instead of
the default of '\fB#\fR'.
.RE

.sp
.ne 2
.na
\fB-e\fR
.ad
.RS 18n
Allow empty value (right hand side).
.RE

.sp
.ne 2
.na
\fB-f\fR
.ad
.RS 18n
Normally, all upper case letters in the key are folded to lower case. This flag
disables that behavior. This is intended to mesh with the \fB-f\fR flag in the
\fBK\fR line in \fBsendmail.cf\fR. The value is never case folded.
.RE

.sp
.ne 2
.na
\fB-l\fR
.ad
.RS 18n
List supported map types.
.RE

.sp
.ne 2
.na
\fB-N\fR
.ad
.RS 18n
Include the null byte that terminates strings in the map. This must match the
\fB-N\fR flag in the \fBK\fR line in \fBsendmail.cf\fR.
.RE

.sp
.ne 2
.na
\fB-o\fR
.ad
.RS 18n
Append to an old file. This allows you to augment an existing file.
.RE

.sp
.ne 2
.na
\fB-r\fR
.ad
.RS 18n
Allow replacement of existing keys. Normally \fBmakemap\fR complains if you
repeat a key, and does not do the insert.
.RE

.sp
.ne 2
.na
\fB-s\fR
.ad
.RS 18n
Ignore safety checks on maps being created. This includes checking for hard or
symbolic links in world writable directories.
.RE

.sp
.ne 2
.na
\fB-t\fR \fIdelim\fR
.ad
.RS 18n
Use the specified delimiter (\fIdelim\fR) instead of whitespace.
.RE

.sp
.ne 2
.na
\fB-u\fR
.ad
.RS 18n
Dump (unmap) the content of the database to standard output. Note that, if the
\fB-t\fR option is also provided, the specified delimiter is used when the
content is dumped instead of whitespace.
.RE

.sp
.ne 2
.na
\fB-v\fR
.ad
.RS 18n
Verbosely print keys and values being added.
.RE

.SH OPERANDS
.LP
The following operands are supported:
.sp
.ne 2
.na
\fImapname\fR
.ad
.RS 11n
File name of the database map being created.
.RE

.sp
.ne 2
.na
\fImaptype\fR
.ad
.RS 11n
Specifies the database format. The following \fImaptype\fR parameters are
available:
.sp
.ne 2
.na
\fBdbm\fR
.ad
.RS 9n
Specifies \fBDBM\fR format maps.
.RE

.sp
.ne 2
.na
\fBbtree\fR
.ad
.RS 9n
Specifies B-Tree format maps.
.RE

.sp
.ne 2
.na
\fBhash\fR
.ad
.RS 9n
Specifies hash format maps.
.RE

.RE

.SH SEE ALSO
.LP
.BR attributes (7),
.BR editmap (8),
.BR sendmail (8)
